1. Field of the Invention
The present invention relates generally to a spreading device and method for a CDMA communication system, and in particular, to a device and method for allocating orthogonal codes in a variable data rate channel structure and spreading channels according to the allocation results.
2. Description of the Related Art
In order to increase channel capacity, a CDMA (Code Division Multiple Access) communication system spreads channels using orthogonal codes. For example, a forward link of an IMT-2000 system performs channel spreading using orthogonal codes. A reverse link can also perform channel spreading using the orthogonal codes through time alignment. An example of an orthogonal code that is typically used is a Walsh code. The number of available orthogonal codes is determined depending upon a modulation method and a minimum data rate.
The IMT-2000 system supports a data transmission service using a Supplemental Channel. The data being transmitted over the supplemental channel may include moving picture data (or circuit data), which should be transmitted in real time, and general packet data. Such data is transmitted at variable rates. For example, the Supplemental Channel can support data rates of 9.6 Kbps, 19.2 Kbps, 38.4 Kbps, 76.8 Kbps, 153.6 Kbps, 307.2 Kbps and 614.4 Kbps. The Walsh code has Walsh lengths (or spreading factors) of 256, 128, 64, 32, 16, 8 and 4 according to the respective data rates. In addition, a Forward Common Control Channel (F-CCCH) of the IMT-2000 system also supports the variable data rates. For example, the Common Control Channel can support the data rates of 9.6 Kbps, 19.2 Kbps and 38.4 Kbps. At this point, the Walsh codes have Walsh lengths (or spreading factors) of 256, 128 and 64 according to the respective data rates.
In the variable data rate channel scheme, a channel frame is transmitted at a specific rate, and the data rate can be varied during the frame transmission according to changes in the channel environment. In other words, when the channel environment improves during data transmission, the data transmission rate can be increased to a higher data rate. Otherwise, when the channel environment deteriorates, the data transmission rate can be decreased to a lower data rate. For example, the data rate of 19.2 Kbps can be varied to the higher data rates of 38.4 Kbps to 614.6 Kbps when the channel environment improves during the transmission, otherwise, the data rates of 19.2 Kbps can be varied to the lower data rate of 9.6 Kbps when the channel environment deteriorates. Here, the channel environment refers to all the factors which can affect the data transmission. An increase in the data rate according to the channel environment causes a decrease in the Walsh length, thus making it difficult to allocate the Walsh codes. FIG. 3 is a diagram for explaining such problems. Before describing the problems, a reference will first be made to FIGS. 1 and 2.
FIG. 1 shows a structure of the general Walsh code set. Referring to FIG. 1, a Walsh code set W is comprised of N Walsh codes having a Walsh length N, and can be divided into 4 Walsh code sets of length N/2. If it is assumed that a set of N/2 Walsh codes having a Walsh length N/2 is defined as a Walsh code set W′, the two upper Walsh code sets of length N/2 are equivalent to the twice-repeated Walsh code set W′. Further, the lower left Walsh code set of length N/2 is equivalent to the above Walsh code set W′, and the lower right Walsh code set of length N/2 is equivalent to an inverted Walsh code set {overscore (W′)}. For inversion of the Walsh code, a bit ‘1’is converted to ‘0’and a bit ‘0’to ‘1’.
Equation (1) below shows how to derive a Walsh code set of length 4 from a Walsh code set of length 2, in order to bring a better understanding of the Walsh code structure of FIG. 1. That is, the Walsh code set of length 4 corresponding to the above stated Walsh code set W, and the Walsh code set of length 2 corresponding to the above stated Walsh code set W′.                               [                                                    0                                            0                                                                    0                                            1                                              ]                ⇒                  [                                                    0                                            0                                            0                                            0                                                                    0                                            1                                            0                                            1                                                                    0                                            0                                            1                                            1                                                                    0                                            1                                            1                                            0                                              ]                                    [                  Equation          ⁢                                          ⁢          1                ]            
FIG. 2 shows a Walsh code set of length 256, which is obtained using the method of Equation (1). Referring to FIG. 2, a Walsh code set W is comprised of 256 Walsh codes having a Walsh length 256, and can be divided into 4 Walsh code sets of length 128. If it is assumed that a set of 128 Walsh codes having a Walsh length 128 is defined as a Walsh code set W′, the two upper Walsh code sets of length 128 are equivalent to the twice-repeated Walsh code set W′. Further, the lower left Walsh code set of length 128 is equivalent to the above Walsh code set W′, and the lower right Walsh code set of length 128 is equivalent to an inverted Walsh code set {overscore (W)}′.
In addition, if it is assumed that a set of 64 Walsh codes having a Walsh length 64 is defined as a Walsh code set W″, the two upper Walsh code sets of length 64 of each Walsh code set W″ are equivalent to the twice-repeated Walsh code set W″. Further, the lower left Walsh code set of length 64 of each Walsh code set W″ is equivalent to the above Walsh code set W″, and the lower right Walsh code set of length 64 is equivalent to an inverted Walsh code set {overscore (W″)}. Here, the structure of the Walsh code set W′ is commonly applied to all the Walsh code sets W′ constituting the Walsh code set W. Further, the Walsh code set {overscore (W′)} is also constituted in the same structure as that of the Walsh code set W′ as disclosed in the above. By using such structure of the Walsh codes, it is possible to reduce an interference (or correlation) between the users.
FIG. 3 shows a correlation between two users according to the Walsh codes when the data rate is variable according to the channel environments. Referring to FIG. 3, a first user uses an 8th Walsh code (which is a Walsh code having a Walsh number 8) at a data rate of 38.4 Kbps. A Walsh code of length 64 should be used to transmit data at the data rate of 38.4 Kbps. Therefore, the data of the first user is spread with an 8th Walsh code of length 64 and transmitted at the data rate of 38.4 Kbps as stated above. At this data rate, it is possible to transmit 4 times the data which can be transmitted at the data rate of 9.6 Kbps. This becomes apparent when compared with the data transmission method of a fourth user, who transmits the data at the data rate of 9.6 Kbps using an 8th Walsh code of length 256. More specifically, with regard to the data transmission method of the first user, a first code symbol is spread with a first 64-chip Walsh code (i.e., first 64 chips of the 8th Walsh code), a second code symbol is spread with a second 64-chip spreading code (i.e., second 64 chips of the 8th Walsh code), a third code symbol is spread with a third 64-chip Walsh code (i.e., third 64 chips of the 8th Walsh code), and a fourth code symbol is spread with a fourth 64-chip Walsh code (i.e., fourth 64 chips of the 8th Walsh code).
A second user uses the 8th Walsh code at a data rate of 19.2 Kbps. A Walsh code of length 128 should be used to transmit data at the data rate of 19.2 Kbps. Therefore, the data of the second user is spread with the 8th Walsh code of length 128 and transmitted at the data rate of 19.2 Kbps. At this data rate, it is possible to transmit 2 times the data which can be transmitted at the data rate of 9.6 Kbps. This becomes apparent when compared with the data transmission method of the fourth user, who transmits the data at the data rate of 9.6 Kbps using the 8th Walsh code of length 256. More specifically, with regard to the data transmission method of the second user, a first code symbol is spread with a first 128-chip Walsh code (i.e., leading 128 chips of the 8th Walsh code), and a second code symbol is spread with a second 128-chip Walsh code (i.e., following 128 chips of the 8th Walsh code).
A third user uses a 72th Walsh code of length 128 at the data rate of 19.2 Kbps. Two transmission symbols are spread with the corresponding 128-chip Walsh codes (72′ Walsh code).
Further, the fourth to seventh users use their unique Walsh codes of length 256 at the data rate of 9.6 Kbps. Each transmission symbol is spread with a 256-chip Walsh code. The unique Walsh codes used by the fourth to seventh users are 8′, 72′, 136′ and 200th Walsh codes, respectively.
Next, reference will be made to an interference among the users using the different data rates and Walsh codes.
First, a description will be made of an interference between the first user and the third user on a 64-chip unit basis. The first symbol of the first user and the corresponding duration of the third user are spread with the same Walsh code W″8, thus causing an interference between the first user and the third user. That is, at the corresponding duration, the first user has an interference with the third user. This interference also occurs at the third symbol duration of the first user and the corresponding chip duration of the third user. Therefore, while transmitting the data of the first user, it is not possible to transmit the data of the third user.
Next, a description will be made of an interference between the first user and the fifth to seventh users on the 64-chip unit basis. The first symbol of the first user and the corresponding duration of the fifth to seventh users are spread with the same Walsh code W″8, thus causing an interference between the first user and the fifth to seventh users. That is, at the corresponding duration, the first user has a interference with the fifth to seventh users. This interference occurs at the third symbol duration of the first user and the corresponding chip duration of the fifth user; at the second symbol duration of the first user and the corresponding duration of the sixth user; and at the fourth symbol duration of the first user and the corresponding duration of the seventh user. Therefore, while transmitting the data of the first user, it is not possible to transmit the data of the fifth to seventh users.
In other words, when there exists a user using a Walsh code of short length such as the first user, the users using Walsh codes of the longer length cannot use some of the Walsh codes due to the bad correlation property.
For example, when there exists a user using an n-th Walsh code Wn, (0≦n≦64) of length 64 for a Walsh code of full length 256, a user using the longer Walsh length cannot use not only the n-th Walsh code Wn but also (n+64)th, (n+128)th and (n+192)th Walsh codes Wn+64, Wn+128 and Wn+192. That is, several Walsh codes cannot be used because of one user. At this point, an increase in the data rate of the user will cause a decrease in the Walsh length, thus increasing the number of unavailable Walsh codes.
As stated above, the data rate of the users varies depending on the channel environment, and the maximum data rate is initially determined by a base station. After determination of the maximum data rate, the unavailable Walsh codes are determined. At this point, it should be noted that the user does not always communicate at the maximum data rate. Therefore, not using the Walsh codes which are unavailable for the maximum data rate, even when communication is performed at a data rate lower than the maximum data rate, resulting in the inefficient use of the Walsh codes.